//import 'dart:async';
//import 'dart:io';
//
//import 'package:camera/camera.dart';
//import 'package:date_format/date_format.dart';
//import 'package:flutter/cupertino.dart';
//import 'package:flutter/material.dart';
//import 'package:flutterdemo/utils/toast_util.dart';
//import 'package:path_provider/path_provider.dart';
//
//class CameraPage extends StatefulWidget {
//  @override
//  State<StatefulWidget> createState() {
//    return _CameraPageState();
//  }
//}
//
//class _CameraPageState extends State<CameraPage> {
//  CameraController cameraController;
//  List<CameraDescription> cameras;
//  Timer _timer;
//  int _countTime = 0;
//
//  @override
//  void initState() {
//    super.initState();
//    _init();
//  }
//
//  _init() async {
//    cameras = await availableCameras();
//    //开启后置摄像头
//    cameraController = CameraController(cameras[0], ResolutionPreset.medium);
//    cameraController.initialize().then((value) {
//      if (!mounted) {
//        return;
//      }
//      setState(() {});
//    });
//  }
//
//  @override
//  Widget build(BuildContext context) {
//    return Scaffold(
//      appBar: AppBar(
//        title: Text('camera'),
//      ),
//      body: _body(),
//    );
//  }
//
//  Widget _body() {
//    return Column(
//      children: <Widget>[
//        Expanded(
//          flex: 1,
//          child: Container(
//            child: _cameraPreview(),
//          ),
//        ),
//        Container(
//          child: Text(
//            '录制时长 $_countTime s',
//            textAlign: TextAlign.center,
//          ),
//        ),
//        Container(
//          color: Colors.transparent,
//          child: Row(
//            mainAxisAlignment: MainAxisAlignment.spaceEvenly,
//            children: <Widget>[
//              IconButton(
//                icon: Icon(
//                  Icons.camera_alt,
//                  color: Colors.lightBlue,
//                ),
//                onPressed: _onTakePicture,
//              ),
//              IconButton(
//                icon: Icon(
//                  Icons.videocam,
//                  color: Colors.lightBlue,
//                ),
//                onPressed: _onVideoRecord,
//              ),
//              IconButton(
//                icon: Icon(
//                  Icons.stop,
//                  color: Colors.lightBlue,
//                ),
//                onPressed: _onVideoRecordStop,
//              ),
//            ],
//          ),
//        ),
//      ],
//    );
//  }
//
//  Widget _cameraPreview() {
//    if (cameraController == null || !cameraController.value.isInitialized) {
//      return Text('正在初始化');
//    } else {
//      return AspectRatio(
//        aspectRatio: cameraController.value.aspectRatio,
//        child: CameraPreview(cameraController),
//      );
//    }
//  }
//
//  @override
//  void dispose() {
//    super.dispose();
//    cameraController.dispose();
//    if (_timer != null) {
//      _timer.cancel();
//    }
//  }
//
//  _onTakePicture() async {
//    if (!cameraController.value.isInitialized) {
//      ToastUtil.showToastCenter("正在初始化相机");
//      return;
//    }
//    if (cameraController.value.isRecordingVideo) {
//      ToastUtil.showToastCenter("正在录制");
//      return;
//    }
//    String fileName =
//        formatDate(DateTime.now(), [yyyy, mm, dd, "_", HH, nn, ss, SSS]);
//    String pathDir = (await getExternalStorageDirectory()).path + "/Pictures";
//    await Directory(pathDir).create(recursive: true);
//    String path = "$pathDir/$fileName.jpg";
//    if (cameraController.value.isTakingPicture) {
//      return;
//    }
//    for (int i = 0; i < 1; i++) {
//      await cameraController.takePicture(path);
//    }
//    ToastUtil.showToastCenter('拍照成功$path');
//  }
//
//  _onVideoRecord() async {
//    if (!cameraController.value.isInitialized) {
//      ToastUtil.showToastCenter("正在初始化相机");
//      return;
//    }
//    if (cameraController.value.isRecordingVideo) {
//      ToastUtil.showToastCenter("正在录制");
//      return;
//    }
//    String fileName =
//        formatDate(DateTime.now(), [yyyy, mm, dd, "_", HH, nn, ss, SSS]);
//    String pathDir = (await getExternalStorageDirectory()).path + "/Movies";
//    await Directory(pathDir).create(recursive: true);
//    String path = "$pathDir/$fileName.mp4";
//    if (cameraController.value.isRecordingVideo) {
//      return;
//    }
//    await cameraController.startVideoRecording(path);
//    ToastUtil.showToastCenter("开始录制$path");
//    _startTimer();
//  }
//
//  _onVideoRecordStart() async {
//    if (!cameraController.value.isInitialized) {
//      ToastUtil.showToastCenter("正在初始化相机");
//      return;
//    }
//    if (!cameraController.value.isRecordingVideo) {
//      ToastUtil.showToastCenter("正在录制");
//      return;
//    }
//    await cameraController.resumeVideoRecording();
//  }
//
//  _onVideoRecordStop() async {
//    if (!cameraController.value.isInitialized) {
//      ToastUtil.showToastCenter("正在初始化相机");
//      return;
//    }
//    if (!cameraController.value.isRecordingVideo) {
//      ToastUtil.showToastCenter("没有录制，咋暂停");
//      return;
//    }
//    await cameraController.stopVideoRecording();
//    if (_timer != null) {
//      _timer.cancel();
//    }
//    ToastUtil.showToastCenter('结束录制');
//  }
//
//  _startTimer() {
//    _countTime = 0;
//    _timer = Timer.periodic(Duration(seconds: 1), (timer) {
//      setState(() {
//        _countTime++;
//        print('time=$_countTime');
//      });
//    });
//  }
//}
